﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
//class Date
//{
//public:
//	//Date()//无参构造函数。
//	//{
//	//	_year = 1;
//	//	_month = 1;
//	//	_day = 1;
//	//}
//
//	Date(int year, int month, int day)//带参构造函数
//	{
//		_year = year;
//		_month = month;
//		_day = day;
//	}
//	
//	//Date(int year = 2, int month = 2, int day = 2) //全缺省构造参数
//	//{
//	//	_year = year;
//	//	_month = month;
//	//	_day = day;
//	//}
//
//	void Paint()
//	{
//		cout << _year << "/" << _month << "/" << _day << endl;
//	}
//private:
//	int _year;
//	int _month;
//	int _day;
//};
//int main()
//{
//	//如果调用带参构造，就要把第一个和第三个默认和缺省注释掉。
//	
//	// 注意：如果通过⽆参构造函数创建对象时，对象后⾯不⽤跟括号，
//	// 否则编译器⽆法区分这⾥是函数声明还是实例化对象
//
//	Date d1;//调用默认构造参数
//	Date d2(2024, 8, 12);//调用带参构造参数
//	Date d3; //调用全缺省构造参数
//	d2.Paint();
//	return 0;
// }


typedef int STDataType;
class Stack
{
public:
	Stack(int n = 4)
	{
		_a = (STDataType*)malloc(sizeof(STDataType) * n);
		if (nullptr == _a)
		{
			perror("malloc申请空间失败");
				return;
		}
		_capacity = n;
		_top = 0;
	}
	// ...

private:
	STDataType * _a;
	size_t _capacity;
	size_t _top;
};
// 两个Stack实现队列
class MyQueue
{
public:
	//编译器默认⽣成MyQueue的构造函数调⽤了Stack的构造，完成了两个成员的初始化
private:
	Stack pushst;
	Stack popst;
};
int main()
{
	MyQueue mq;
	return 0;
}